const path = require('path')
const HtmlWebPackPlugin = require('html-webpack-plugin') // 在内存中自动生成index页面的插件

// 创建一个插件的实例对象
const htmlPlugin = new HtmlWebPackPlugin({
    template: path.join(__dirname,'./src/index.html'), // 原文件
    filename: 'index.html' // 在内存中生成的首页名称

})


// 向外暴露一个打包的配置对象
// webpack 默认只能打包处理.js后缀名类型的文件，像.png , .vue 无法主动处理，所以要配置第三方的loader。
module.exports = {
    mode: 'development', // development production
    plugins: [
        htmlPlugin
    ],
    module: { // 所有第三方模块的配置规则
        rules: [ // 第三方匹配规则
            {test: /\.js|jsx$/, use: 'babel-loader', exclude: /node_modules/}, // exclude排除项
            // {test: /\.css$/, use:['style-loader', 'css-loader?modules&localIdentName=[path][name]-[local]-[hash:5]']}, // 打包处理css样式表的第三方loader,参数modules表示css启用模块化
            // css模块化只针对 类选择器和Id选择器生效，对于标签选择器无效
            {test: /\.css$/, use:['style-loader', 'css-loader']}, // 打包处理css样式表的第三方loader,参数modules表示css启用模块化
            {test: /\.scss$/, use:['style-loader', 'css-loader?modules&localIdentName=[path][name]-[local]-[hash:5]','sass-loader']}, // 打包处理scss文件的loader
            {test:/\.ttf|woff|woff2|eot|svg$/,use:'url-loader'} // 打包处理 字体文件的loader
        ]
    },
    resolve:{
        extensions:['.js','.jsx','.json'], // 这几个后缀名可以省略不写，会帮助补全
        alias:{ // 设置别名
            '@':path.join(__dirname,'./src')
        }
    }
}